home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CS / CSCD023B.D64 / disk master .exe (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  11.8 KB  |  473 lines

  1. 2 REM=DISK MASTER=TPUG DISK (C)M9============CUG-O DISK C5======PGM # 154CD=====
  2. 10 GOTO8640
  3. 120 PRINT"ô Ü╒────────────────────────────────────╔"
  4. 140 PRINT" Ü▌            DISK  MASTER            Ü▌ÆÉ"
  5. 160 PRINT" Ü╩├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├╦ÆÉ":PRINT:PRINT:RETURN
  6. 520 CLOSE5:CLOSE4:CX=0:PD=3:C$=""
  7. 540 POKE53280,15:GOSUB1000:GOSUB120
  8. 560 V$(0)="> LIST DISK NAMES,ID'S É               "
  9. 580 V$(1)="> DISPLAY SELECTED DIRECTORYÉ          "
  10. 600 V$(2)="> FIND SPECIFIED FILE É                "
  11. 620 V$(3)="> UPDATE ÉMASTER DIRECTORY             "
  12. 640 V$(4)="> DELETE ÉDISK ENTRY FROM MASTER       "
  13. 660 V$(5)=">   LIST MIN ÉFREE BLOCKS PER DISK     "
  14. 680 V$(6)=">   LIST MAX ÉFREE BLOCKS PER DISK     "
  15. 700 V$(7)=">   QUICK LIST OF ID'S IN USE É        "
  16. 720 V$(8)=">   PRINT FULL ID USEAGE CHART É       "
  17. 740 V$(9)=">      EXIT ÉTO BASIC                  "
  18. 760 PRINT"        ╒├⌐▀ÆÉ├├├├├╔          ╒├├├├├├├├╔"
  19. 780 PRINT"  USE   ┬ CURSORÉ ┬   AND    ┬ RETURNÉ ┬"
  20. 800 PRINT"        ╩├├├├├▀⌐É├╦          ╩├├├├├├├├╦"
  21. 820 NP=9:GOSUB8940
  22. 840  
  23. 860 REM      BRANCHING...
  24. 880  
  25. 900 ONV GOTO5340,3520,1140,1960,4300,7320,7480,5060,4580,7000
  26. 920  
  27. 940  
  28. 960          SOUND...
  29. 980  
  30. 1000 POKE54296,15:POKE54277,2:POKE54278,251
  31. 1020 POKE54276,17:POKE54273,80 :POKE54272,10:FORP=.TO22:NEXT
  32. 1040 FORP=.TO30:POKE54276,16:NEXT
  33. 1060 RETURN
  34. 1080  
  35. 1100        SPECIFIED FILE...
  36. 1120  
  37. 1140 IFNX=0THENGOSUB5720:GOTO520
  38. 1160 CLOSE4:PRINT"ôTO FIND WHAT DISK(S) A FILE IS ON":PRINT
  39. 1180 PRINT"ENTER FILE NAME ":PRINT:PRINT"(FIRST LETTERS;'*'NOT NEEDED)":PRINT
  40. 1200 INPUTF$:IFF$=""THEN520
  41. 1220 IFF$="*"THENPRINT:PRINT"RE-";:GOTO1180
  42. 1240 S$=F$:GOSUB6000:V=Y:GOSUB6100
  43. 1260 OPEN4,PD:PRINT#4,"Ü FILE NAME ...... ID, DISK NAME  .......É":PRINT#4
  44. 1280 IFST<>.THENGOSUB8220:GOTO520
  45. 1300 PRINT#4,S$:Q$=LEFT$(S$,1):PRINT#4
  46. 1320 POKEAD-1,ASC(Q$):POKEGIN+27,192:REM MODIFY ML
  47. 1340 FORZ=.TONX-1:DI$=LEFT$(X$(Z),2):DN$=MID$(X$(Z),3)
  48. 1360 S$="0:DIR."+DI$
  49. 1380 PRINT"        ╒├├├├├├├├├▓├├╔   ╒├├├├╔       "
  50. 1400 PRINT" READINGÆíÉ";LEFT$(DN$,9);"┬É";DI$;"┬   ┬ _ ▀TO SKIP Æ"
  51. 1420 PRINT"        ╩├├├├├├├├├▒├├╦   ╩├├├├╦       "
  52. 1440 GOSUB9420:PRINT"æææ";
  53. 1460 OPEN5,8,5,"0:DIR."+DI$+",S,R":EF=15
  54. 1480 INPUT#5,DF$,NB
  55. 1500 IFPEEK(Q)>.THENGOSUB1000:GOTO1840
  56. 1520 SYSAD
  57. 1540 IFPEEK(Q)>.THENGOSUB1000:GOTO1840
  58. 1560 S$=CHR$(PEEK(AD-2)):POKEGIN+28,18:SYSGIN:S$=S$+LEFT$(IN$,15):POKEGIN+28,20
  59. 1620 SS=ST:INPUT#15,EN,EM$:IFEN>.THENGOSUB6520:GOTO8140
  60. 1640 IFF$<LEFT$(S$,V)THEN1720
  61. 1660 IFF$=LEFT$(S$,V)THENPRINT#4,S$;"  ";DI$;"  ";DN$
  62. 1680 IFSS>.THEN1720
  63. 1700 SYSGIN:S$=MID$(IN$,2,16):GOTO1620
  64. 1720 CLOSE5:NEXTZ
  65. 1740 GOSUB6520
  66. 1760 IFPD=4THEN520
  67. 1780 GOSUB9700
  68. 1800 GOSUB6260
  69. 1820 GOTO520
  70. 1840 GETC$:IFC$="_"THENPOKEQ,.:GOTO1720
  71. 1860 IFC$="Q"THENCLOSE5:GOSUB6520:GOTO520
  72. 1880 PRINT"╤¥";:FORX=.TO99:NEXT:WAIT197,64,64:GOSUB1000:PRINT" ¥";:
  73. 1900 FORX=.TO99:NEXTX:POKEQ,.:GOTO1520
  74. 1920  
  75. 1940        UPDATING...
  76. 1960  
  77. 1980 CLOSE15:CX=0:POKE53280,14
  78. 2000 ME$="INSERT DISK TO BE CATALOGUED"
  79. 2020 GOSUB8280
  80. 2040 IFC$="Q"THENGOSUB7100:GOTO520
  81. 2060 GOSUB6480:PRINT"OK":OPEN15,8,15,"I0"
  82. 2080 IFST<>.THEN8140
  83. 2100 OPEN5,8,5,"$0"
  84. 2120 SYSGIN
  85. 2140 GOSUB8120
  86. 2160 DN$=MID$(IN$,143,16)
  87. 2180 DI$=MID$(IN$,161,2)
  88. 2200 DI$=LEFT$(DI$+"  ",2)
  89. 2220 PRINT"ô  DISK NAME, ID  :ÉÆ "DN$", "DI$:PRINT
  90. 2240 NB=0 :REM BAM
  91. 2260 FORZ=3TO141STEP4:C$=MID$(IN$,Z,1):V=ASC(C$)
  92. 2280 IFZ=71THENNEXTZ
  93. 2300 NB=NB+V
  94. 2320 NEXT
  95. 2340 IFNX=0THEN2640
  96. 2360 FORX=0TONX-1:C$=LEFT$(X$(X),2)
  97. 2380 IFDI$<C$THEN2640
  98. 2400 IFDI$<>C$THENNEXTX:GOTO2640
  99. 2420 IFDN$=MID$(X$(X),3)THEN2640
  100. 2440 PRINT"ô"SPC(10)"*  WARNING  *":PRINT:PRINT"THIS DISK ID : ";DI$;"Æ"
  101. 2460 PRINT:PRINT"DISK NAME: ";DN$
  102. 2480 PRINT:PRINT"IS ALREADY CATALOGED WITH A DIFFERENT "
  103. 2500 PRINT:PRINT"DISK NAME: ";MID$(X$(X),3):PRINT
  104. 2520 GOSUB6480
  105. 2540 PRINT"CATALOGING THIS DISK WILL DELETE THE"
  106. 2560 PRINT:PRINT"PREVIOUS DATA"
  107. 2580 GOSUB6480:PRINT
  108. 2600 INPUT"CATALOG THIS DISK? Y¥¥¥";C$:IFC$<>"Y"THENGOSUB7100:GOTO3420
  109. 2620 PRINT"ô    CATALOGING DISK WITH NEW DISK NAME":PRINT
  110. 2640 PRINT"READING DIRECTORY ENTRIES...":PRINT
  111. 2660 DF$=MID$(IN$,164,2)
  112. 2680 NF=0:Z=0
  113. 2700 SE=18
  114. 2720 SE=SE-1:SYSGIN
  115. 2740 J=257:Z=32
  116. 2760 J=J-Z:A=.:V=.:L=.
  117. 2780 F$=MID$(IN$,J,1):A=ASC(F$)
  118. 2800  IFA<129THEN3020
  119. 2820 S$=MID$(IN$,J+3,16)
  120. 2840 C$=MID$(IN$,J+28,1):IFC$<>""THENV=ASC(C$)
  121. 2860 Q$=MID$(IN$,J+29,1):IFQ$<>""THENL=ASC(Q$)
  122. 2880  IFNF=0THEN2940
  123. 2900   FORX=1TONF:IFS$<MID$(D$(X),2,16)THEN2960
  124. 2920 NEXTX
  125. 2940 X=NF+1:GOTO2980
  126. 2960 FORY=NFTOXSTEP-1:D$(Y+1)=D$(Y):NEXTY
  127. 2980 D$(X)=F$+S$+CHR$(V)+CHR$(L):NF=NF+1
  128. 3000 PRINTS$;V
  129. 3020 IFJ>1THEN2760
  130. 3040 IFSTTHENSE=.
  131. 3060 IFSETHEN2720
  132. 3080 CLOSE5:PRINTNB"  BLOCKS FREEÆ":FORI=.TO1300:NEXT:GOSUB1000
  133. 3100 GOSUB7100
  134. 3120 PRINT"     UPDATING MASTER DIRECTORY..."
  135. 3140 IFNX=0THEN3240
  136. 3160 FORX=0TONX-1:C$=LEFT$(X$(X),2):IFDI$<C$THEN3220
  137. 3180 IFDI$=C$THEN3280
  138. 3200 NEXTX:GOTO3240
  139. 3220 FORY=NX-1TOXSTEP-1:X$(Y+1)=X$(Y):NEXTY:GOTO3260
  140. 3240 X=NX
  141. 3260 NX=NX+1
  142. 3280 X$(X)=DI$+DN$:CX=1
  143. 3300 GOSUB5960
  144. 3320 PRINT#15,"S"+S$:OPEN5,8,5,S$+",S,W":GOSUB8120
  145. 3340 PRINT#5,DF$;",";NB;CR$;:GOSUB8120
  146. 3360 IF NF>0 THEN FOR X=1 TO NF:PRINT#5,D$(X);CR$;
  147. 3380 GOSUB8120
  148. 3400 NEXTX
  149. 3420 CLOSE5:GOSUB6720
  150. 3440 CX=0:GOTO540
  151. 3460  
  152. 3480        DISPLAY....
  153. 3500  
  154. 3520 PRINT"ô      TO DISPLAY DISK DIRECTORY"
  155. 3540 GOSUB5700
  156. 3560 IFMTHENM=.:GOTO520
  157. 3580 PRINT"  DISK NAME, ID  :ÉÆ "DN$", "DI$:PRINT:PRINT
  158. 3600 GOSUB6120
  159. 3620 OPEN5,8,5,S$+",S,R":GOSUB8120
  160. 3640 INPUT#5,DF$,NB:GOSUB8120
  161. 3660 OPEN4,PD:PRINT#4,"  DISK NAME, ID  :ÉÆ "DN$", "DI$:
  162. 3680 IFST<>.THENGOSUB8220:GOTO520
  163. 3700 PRINT#4:PRINT#4,"     BLOCKS FREE :ÉÆ "NB
  164. 3720 PRINT#4:PRINT#4,"          FORMAT :ÉÆ "DF$:PRINT#4
  165. 3740 PRINT#4,"├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├├":PRINT#4
  166. 3760 PRINT"æææ":GOSUB9420:PRINT""
  167. 3780 NF=0:J=8:IFSS<>0THEN4180
  168. 3800 GOSUB6500
  169. 3820 SYSGIN:GOSUB8120
  170. 3840 C$=LEFT$(IN$,1):FT=ASC(C$)
  171. 3860 S$=MID$(IN$,2,16)
  172. 3880 Z=ASC(MID$(IN$,18,1))
  173. 3900 V=ASC(MID$(IN$,19,1))
  174. 3920 PRINT#4,RIGHT$("      "+STR$(Z+(256*V)),4);"  ";S$;"   ";
  175. 3940 IFFT=129THENPRINT#4,"SEQ   ";
  176. 3960 IFFT=130THENPRINT#4,"PRG   ";
  177. 3980 IFFT=131THENPRINT#4,"USR   ";
  178. 4000 IFFT=132THENPRINT#4,"REL   ";
  179. 4020 PRINT#4
  180. 4040 IFPEEK(Q)>.THENGOSUB1000:GETC$:IFC$<>""ANDC$<>"Q"THENGOSUB6420
  181. 4060 IFC$="Q"THENGOSUB6520:GOTO520
  182. 4080 NF=NF+1:IFSS=.THEN3820
  183. 4100 GOSUB6520
  184. 4120 PRINT#4
  185. 4140 PRINT#4,NB;" BLOCKS FREEÆ       ";NF;" FILESÆ    "
  186. 4160 PRINT#4
  187. 4180 IFPD=3THENPRINT"THIS WAS "DI$", "DN$
  188. 4200 GOSUB6260
  189. 4220 GOTO520
  190. 4240  
  191. 4260         DELETE.....
  192. 4280  
  193. 4300 PRINT"ô  TO DELETE DISK FROM MASTER DIRECTORY"
  194. 4320 POKE53280,2:GOSUB5700:POKE53280,15
  195. 4340 IFMTHENM=.:GOTO520
  196. 4360 PRINT"DELETING :"DI$"  "DN$:PRINT:PRINT
  197. 4380 PRINT#15,"S"+S$
  198. 4400 CX=0:FORX=0TONX-1:IFLEFT$(X$(X),2)=DI$THENCX=1
  199. 4420 IFCXTHENX$(X)=X$(X+1)
  200. 4440 NEXTX:NX=NX-1
  201. 4460 INPUT"    ANY MORE? N¥¥¥";C$:IFC$="Y"THEN4300
  202. 4480 GOSUB6720
  203. 4500 GOTO520
  204. 4520  
  205. 4540          PRINT CHART.....
  206. 4560  
  207. 4580 GOSUB1000:INPUT"ô       PRINTER READY? Y¥¥¥";C$:PRINT:IFC$<>"Y"THEN540
  208. 4600 PRINT"ô  PRINTING CHART...":OPEN4,4
  209. 4620 PRINT#4,""SPC(15);CHR$(14);"  DISK ID USEAGE CHART"
  210. 4640 PRINT#4,CHR$(15):PRINT#4," ";
  211. 4660 IFST<>.THENGOSUB8220:GOTO520
  212. 4680 FORX=48TO90:IFX=58THENX=65
  213. 4700 PRINT#4," ";CHR$(X);:NEXTX:PRINT#4
  214. 4720 Z=0:FORX=48TO90:IFX=58THENX=65
  215. 4740 PRINT#4,CHR$(15);" █└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█└█";
  216. 4760 PRINT#4,"└█└█└█└█└█└█└█└█└█└█";CHR$(8)
  217. 4780 PRINT#4,CHR$(15)CHR$(X);
  218. 4800 FORY=48TO90:IFY=58THENY=65
  219. 4820 PRINT#4,CHR$(221);:IFZ=NXTHEN4880
  220. 4840 C$=CHR$(X)+CHR$(Y):S$=LEFT$(X$(Z),2)
  221. 4860 IFS$=C$THENPRINT#4,CHR$(166);:Z=Z+1:GOTO4900
  222. 4880 PRINT#4," ";
  223. 4900 NEXTY:PRINT#4,CHR$(221)CHR$(8)
  224. 4920 IFPEEK(Q)>.THENGOSUB1000:POKEQ,.:GOSUB6420
  225. 4940 IFC$<>"Q"THENNEXTX
  226. 4960 PRINT#4,CHR$(15);" ¡└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒└▒";
  227. 4980 PRINT#4,"└▒└▒└▒└▒└▒└▒└▒└▒└▒└╜":GOTO520
  228. 5000  
  229. 5020         QUICK LIST....
  230. 5040  
  231. 5060 PRINT"ô":OPEN4,PD
  232. 5080 PRINT#4,"        DISK ID'S CURRENTLY IN USE ÆÉ"
  233. 5100 IFST<>.THENGOSUB8220:GOTO520
  234. 5120 PRINT#4:IFNX=.THENZ=.:GOTO5220
  235. 5140 V=12:IFPD=4THENV=25
  236. 5160 Z=0:FORX=0TONX-1:PRINT#4,LEFT$(X$(X),2);" ";
  237. 5180 Z=Z+1:IFZ=INT(Z/V)*VTHENPRINT#4
  238. 5200 NEXTX:PRINT#4:IFZ<>INT(Z/V)*VTHENPRINT#4
  239. 5220 PRINT#4,Z;" DISKS IN MASTER DIRECTORY":CLOSE4:IFPD=4THEN520
  240. 5240 GOSUB6100:IFPD=4GOTO5060
  241. 5260 GOTO520
  242. 5280  
  243. 5300         NAMES & ID...
  244. 5320  
  245. 5340 PRINT"ô":PRINT
  246. 5360 OPEN4,PD:PRINT#4," ID  ...DISK NAME ...ÉÆ":PRINT#4
  247. 5380 IFST<>.THENGOSUB8220:GOTO520
  248. 5400 GOSUB9420:PRINT""
  249. 5420 C$="":IFNX=.THENGOTO5540
  250. 5440 FORX=.TONX-1
  251. 5460 PRINT#4,LEFT$(X$(X),2);"  ";MID$(X$(X),3);"          "
  252. 5480 IFPEEK(Q)>.THENGOSUB1000:GETC$:IFC$<>""ANDC$<>"Q"THENGOSUB6420
  253. 5500 IFC$="Q"THENGOTO520
  254. 5520 NEXTX:PRINT#4
  255. 5540 PRINT#4,NX;" DISKS IN MASTER DIRECTORY         ":CLOSE4
  256. 5560 IFPD=4THENGOTO520
  257. 5580 GOSUB6100:IFPD=4THENGOTO5360
  258. 5600 GOTO520
  259. 5620  
  260. 5640     SETUP STRINGS FOR SELECION...
  261. 5660  
  262. 5680 FORX=1TO NR:V$(X)=B$:NEXT:RETURN
  263. 5700 V=3:IFNX>0THEN5740
  264. 5720 PRINT"ô NO ENTRIES IN MASTER DIRECTORY":FORX=1TO150:NEXT:RETURN
  265. 5740 SL=1:NP=0:V$(0)="  NEXT PAGE.......EXITÉ":GOSUB9520
  266. 5760 NR=19
  267. 5780 SL=SL+NP:NP=NX-SL+1:IFNP>NRTHENNP=NR
  268. 5800 IFNP=.THEN5940
  269. 5820 GOSUB5680:PRINT"":FORX=.TO18:PRINT"                       ":NEXT
  270. 5840 FORX=1TONP:V$(X)=LEFT$(X$(SL+X-2),2)+"    "+MID$(X$(SL+X-2),3):NEXT
  271. 5860 GOSUB8940:IFCL+RL=0THEN5780
  272. 5880 DI$=LEFT$(X$(SL+V-3),2)
  273. 5900 DN$=MID$(X$(SL+V-3),3)
  274. 5920 S$="0:DIR."+DI$:PRINT"ô":RETURN
  275. 5940 PRINT"ôEND OF FILES":FORX=1TO1000:NEXT:M=1:RETURN
  276. 5960 S$="0:DIR."+DI$:RETURN
  277. 5980  
  278. 6000 F$=LEFT$(F$,16)
  279. 6020 IFRIGHT$(F$,1)="*"THENY=LEN(F$)-1:F$=LEFT$(F$,Y):RETURN
  280. 6040 Y=LEN(F$)
  281. 6060 F$=LEFT$(F$+"                ",Y):RETURN
  282. 6080  
  283. 6100 GOSUB6480
  284. 6120 GOSUB1000:INPUT"          WANT PRINTED COPY? N¥¥¥";C$:PRINT"É"
  285. 6140 PD=3:IFC$="Y"THENPD=4:GOSUB6200
  286. 6160 IFPD=3THENPRINT"ô";
  287. 6180 RETURN
  288. 6200 GOSUB1000:INPUT"         PRINTER READY? Y¥¥¥";C$:PRINT:IFC$<>"Y"THEN6120
  289. 6220 RETURN
  290. 6240  
  291. 6260 PRINT"        ╒├├├├├├├├├╔                    "
  292. 6280 PRINT"        ╢Æ RETURN ▀TO CONTINUE...        Æ"
  293. 6300 PRINT"æ        ╩├├├├├├├├├╦                 É"
  294. 6320 IFNTHENRETURN
  295. 6340 GOSUB1000
  296. 6360 GETC$:IFC$<>CHR$(13)THEN6360
  297. 6380 GOSUB1000:RETURN
  298. 6400 :
  299. 6420 GETC$:IFC$=""THEN6420
  300. 6440 GOSUB1000:RETURN
  301. 6460 :
  302. 6480 PRINT"                                        ÆÉ":RETURN
  303. 6500 POKE GIN+27,192:POKE GIN+28,20:RETURN:REM GET 20 CHARS AT A TIME
  304. 6520 POKE GIN+27,196:POKE GIN+28,139:RETURN:REM RESTORE TO GET FULL IN$
  305. 6540 :
  306. 6560 INPUT#15,EN,EM$,ET,ES:IFEN=.THENRETURN
  307. 6580 PRINT"ô DISK ERROR ÉÆ WHILE ";
  308. 6600 IFCXTHENPRINT"WRITING NEW"
  309. 6620 IFCX=0THENPRINT"READING"
  310. 6640 PRINT:PRINT"DISK DIRECTORY CROSS REFERENCE FILE.":PRINT
  311. 6660 PRINTEN;EM$;ET;ES
  312. 6680 PRINT:PRINT" PROGRAM ABORTED! É"
  313. 6700 GOTO7020
  314. 6720 IFCX=0THENRETURN
  315. 6740 PRINT" UPDATING DIRECTORY CROSS REFERENCE...":PRINT
  316. 6760 IFNX=0THENPRINT#15,"S0:DISK DIR XREF":RETURN
  317. 6780 PRINT#15,"S0:DIR XREF TEMP"
  318. 6800 OPEN5,8,5,"0:DIR XREF TEMP,S,W"
  319. 6820 GOSUB6560
  320. 6840 FORX=0TONX-1:PRINT#5,X$(X);CR$;
  321. 6860 GOSUB6560
  322. 6880 NEXTX
  323. 6900 CLOSE5:PRINT#15,"S0:DISK DIR XREF"
  324. 6920 PRINT#15,"R0:DISK DIR XREF=0:DIR XREF TEMP"
  325. 6940 GOSUB6560
  326. 6960 RETURN
  327. 6980   
  328. 7000 PRINT"ô"
  329. 7020 CLOSE4:CLOSE5:CLOSE15
  330. 7040 END
  331. 7060  
  332. 7080  
  333. 7100 PRINT"ô"
  334. 7120 ME$="   INSERT  MASTER  DISK     "
  335. 7140 CLOSE15:GOSUB8280
  336. 7160 OPEN15,8,15,"I0":GOSUB8120
  337. 7180 PRINT#15,"C0:DISK MASTER=0:DISK MASTER"
  338. 7200 INPUT#15,EN,EM$
  339. 7220 IFEN=63THENRETURN
  340. 7240 FORX=.TO60:PRINT"INCORRECT DISK!ÆÉ":NEXT:GOSUB6480:GOTO7140
  341. 7260  
  342. 7280        MIN...
  343. 7300  
  344. 7320 PRINT"ôENTER MINIMUM NUMBER OF FREE BLOCKS"
  345. 7340 PRINT:PRINT"TO BE DISPLAYED   0¥¥¥";
  346. 7360 INPUTS$:REM DEFAULT=0
  347. 7380 Y=VAL(S$):IFS$<>"0"ANDY=0THEN520
  348. 7400 VF=0:GOTO7560
  349. 7420  
  350. 7440         MAX...
  351. 7460  
  352. 7480 PRINT"ôENTER MAXIMUM NUMBER OF FREE BLOCKS"
  353. 7500 PRINT:PRINT"TO BE DISPLAYED  99¥¥¥¥";:INPUTS$
  354. 7520 Y=VAL(S$):IFY=0THEN520
  355. 7540 VF=1
  356. 7560 OPEN4,PD:PRINT#4:PRINT#4,"Ü #BLKS FREE..ID.....DISK NAME...........É":PRINT#4
  357. 7580 IFST<>.THENGOSUB8220:GOTO520
  358. 7600 FORX=0TONX-1:DI$=LEFT$(X$(X),2):DN$=MID$(X$(X),3)
  359. 7620 OPEN5,8,5,"0:DIR."+DI$+",S,R"
  360. 7640 GOSUB8120
  361. 7660 INPUT#5,DF$,NB
  362. 7680 GOSUB8120
  363. 7700 CLOSE5
  364. 7720 IF(VF=0)AND(NB<Y)THEN7800
  365. 7740 IF(VF=1)AND(NB>Y)THEN7800
  366. 7760 PRINT#4,RIGHT$("       "+STR$(NB),7);SPC(6);DI$;"     ";DN$
  367. 7780 GOSUB9420
  368. 7800 IFPEEK(Q)>.THENGOSUB1000:GETC$:IFC$<>""ANDC$<>"Q"THENGOSUB6420
  369. 7820 IFC$="Q"THENCLOSE4:GOTO540
  370. 7840 NEXTX:CLOSE4:GOSUB9700
  371. 7860 IFPD=3THENGOSUB6100:IFPD=4THEN7560
  372. 7880 GOTO540
  373. 7900  
  374. 7920  
  375. 7940 PRINT"ô       *** DISK BAM IS INVALID ***Æ"
  376. 7960 GOSUB6480
  377. 7980 PRINT:PRINT"   CURRENT DISK CAN NOT BE CATALOGED!":PRINT:PRINT:PRINT
  378. 8000 PRINT"PLEASE VERIFY OR CHECK DISK CONTENTS":PRINT
  379. 8020 PRINT"BEFORE ATTEMPTING TO CATALOG THIS DISK.":PRINT
  380. 8040 GOSUB6480
  381. 8060 GOSUB6260:PRINT"ô"
  382. 8080 GOTO3420
  383. 8100  
  384. 8120 SS=ST:INPUT#15,EN,EM$,ET,ES:IFEN=.THENRETURN
  385. 8140 PRINT"ô DISK ERROR! É":PRINT
  386. 8160 GOTO6660
  387. 8180  
  388. 8200  
  389. 8220 IFST=-128THENPRINTSPC(10)"DEVICE NOT PRESENT"
  390. 8240 PRINT"  ??":GOSUB6260:RETURN
  391. 8260  
  392. 8280 PRINT"ô"
  393. 8300 N=4:IFBLTHENCO$="É":GOTO8340
  394. 8320 CO$=""
  395. 8340 N=N-1
  396. 8360 PRINT"Ü    ╒├├├├├├├├├├├├──────├├├├├├├├├├├├╔"
  397. 8380 PRINT"Ü      Æ"CO$;ME$"Ü      Æ"
  398. 8400 PRINT"æÜ    ╩├├├├├├├├├├├├╞╞╞╞╞╞├├├├├├├├├├├├╦É"
  399. 8420 GOSUB6260:GOTO8440
  400. 8440 GETC$:IFC$=CHR$(13)THENGOSUB1000:N=.:GOTO8560
  401. 8460 IFC$="Q"THEN8560
  402. 8480 PRINT"ææææææææææææ"
  403. 8500 IFN>1THEN8340
  404. 8520 IFBLTHENBL=.:GOTO8300
  405. 8540 BL=1:GOTO8300
  406. 8560 PRINT"ô":RETURN
  407. 8580  
  408. 8600       SETUP....
  409. 8620  
  410. 8640 POKE53281,15:POKE53280,15:POKE646,0:GOSUB120:GOSUB1000
  411. 8660 CLR:IN$="ZZ":FORI=.TO5:IN$=IN$+IN$:NEXT
  412. 8680 IN$=MID$(IN$,2):IN$=IN$+IN$
  413. 8700 C$="":S$=C$:Q$="":Z=.:X=.:Y=.:L=.:SS=.:Q=198:V=.:AD=932:GIN=896
  414. 8720 IFPEEK(AD)<>162ORPEEK(GIN)<>160THENFORI=GIN TOAD+38:READX:POKEI,X:NEXT
  415. 8740 CR$=CHR$(13):DIMD$(230),X$(230),V$(230)
  416. 8760 PRINT"   READING CROSS REFERENCE FILE...
  417. 8780 OPEN15,8,15,"I0"
  418. 8800 GOSUB6560
  419. 8820 OPEN5,8,5,"0:DISK DIR XREF,S,R"
  420. 8840 INPUT#15,EN,EM$,ET,ES:IFEN=62THEN520
  421. 8860 INPUT#5,X$(NX):SS=ST
  422. 8880 GOSUB6560
  423. 8900 NX=NX+1:IFSS=0THEN8860
  424. 8920 GOTO520
  425. 8940  
  426. 8960 REM    CURSOR...
  427. 8980  
  428. 9000 B$="                                       "
  429. 9020 XA=214:XB=198:
  430. 9040 PRINT"":FORX=.TONP:PRINT"";V$(X)
  431. 9060 NEXT
  432. 9080 POKEXB,0:RL=.:CL=0:GOSUB9300
  433. 9100 FORI=0TO1STEP0
  434. 9120 GETZ$:IFZ$=""THEN9120
  435. 9140 Z=ASC(Z$):TC=CL:TR=RL:FORJ=0TO1STEP0
  436. 9160 IFZ=17THENRL=RL+1:IFRL=NP+1THENRL=0
  437. 9180 IFZ=145THENRL=RL-1:IFRL=-1THENRL=NP
  438. 9200 IFZ=13THENI=1
  439. 9220 IFV$<>B$THENJ=1
  440. 9240 NEXT:IF(TC<>CL)OR(TR<>RL)THENGOSUB 9280
  441. 9260 NEXT:GOTO9320
  442. 9280 POKEXA,TR+3:PRINT:PRINT"";V$(TR)
  443. 9300 POKEXA,RL+3:PRINT:PRINT"";V$(RL):RETURN
  444. 9320 V=RL+1:GOSUB1000
  445. 9340 RETURN
  446. 9360  
  447. 9380       VARIOUS...
  448. 9400  
  449. 9420 PRINT"  ╒├├├├╔          ╒├├├├├├├├├├╔        "
  450. 9440 PRINT"  ╢Æ Q ▀TO QUIT    ╢Æ ANY KEY ▀TO HOLD  Æ"
  451. 9460 PRINT"  ╩├├├├╦          ╩├├├├├├├├├├╦        Éæææ":RETURN
  452. 9480  
  453. 9500  
  454. 9520 PRINTSPC(31)"USE":PRINT
  455. 9540 PRINTSPC(28)"╒├⌐▀ÆÉ├├├├├╔"
  456. 9560 PRINTSPC(28)"┬ CURSORÉ ┬
  457. 9580 PRINTSPC(28)"╩├├├├├▀⌐É├╦
  458. 9600 PRINT:PRINTSPC(31)"AND":PRINT
  459. 9620 PRINTSPC(28)"╒├├├├├├├├╔
  460. 9640 PRINTSPC(28)"┬ RETURNÉ ┬
  461. 9660 PRINTSPC(28)"╩├├├├├├├├╦
  462. 9680 RETURN
  463. 9700 FORZ=1TO3:PRINT"*                                     *":NEXT:RETURN
  464. 9720 DATA 160,2,177,45,153,137,0,200,192,6
  465. 9740 DATA 208,246,162,5,32,198,255,32,228,255
  466. 9760 DATA 164,142,145,140,200,132,142,196,139,208
  467. 9780 DATA 242,76,204,255:REM SYSGIN
  468. 9800 DATA 0,0,162,5,32,198
  469. 9820 DATA 255,32,207,255,32,207,255,141,162,3
  470. 9840 DATA 205,163,3,240,17,176,15,162,18,32
  471. 9860 DATA 207,255,202,208,250,164,144,208,3,76
  472. 9880 DATA 169,3,76,204,255:REM SYSAD
  473.